package cn.edu.scau.cmi.ema.service;

import cn.edu.scau.cmi.ema.base.CmiPagination;
import cn.edu.scau.cmi.ema.domain.Subject;

import java.util.List;
import java.util.Map;
import java.util.Set;


public interface SubjectService {

	public Subject saveSubject(Subject subject);

	public Set<Subject> loadSubjects();

	public Set<Subject> loadReferenceSubjects(Set<Subject> subjects);

	public Set<Subject> loadSubjectsByIdSet(Set<Integer> subjectsId);

	public Map<String, ?> loadSubjectObjectReferencedSet(Subject subject);

	public Map<String, ?> loadSubjectClassReferencedSet(Subject subject);

	public void deleteSubject(Subject subject);

	public void deleteSubjects(Set<Integer> deleteSubjectsId);

	public List<Subject> findAllSubjects(Integer startResult, Integer maxRows);

	public Subject findSubjectByPrimaryKey(Integer id);

	public Integer countSubjects();

	public Integer countSubjects(CmiPagination page);

	public Integer countSubjectsByName(String queryName);

	public Integer countSubjectsByDetachedCriteria(CmiPagination page);

}
